1. Field of the Invention
This invention relates to modeling technology. More particularly, this invention relates to modeling subjects having diverse structural and configurational variants.
2. Description of the Related Art
The meanings of certain acronyms and abbreviations used herein are given in Table 1.
TABLE 1Acronyms and AbbreviationsDSLDomain-Specific LanguageEMFEclipse Modeling FrameworkMOFMeta Object FacilityOCLObject Constraint LanguageUMLUnified Modeling Language
Modeling languages are used to create a visual representation, known as a modeling diagram of a complex system. A well known general-purpose modeling language is Uniform Modeling Language (UML). In general, such languages deal with objects having a set of properties related to the system being modeled. The model represents relationships between the objects and their respective properties and behavior. Such objects may also be referred to as entities, classes or components.
Modeling languages are now commonly exploited by industry for managing the lifecycle of complex systems. Modeling offers some degree of insulation against “technology churn”, i.e., shifts in specifications and configurations of the product during its lifecycle. Modeling diagrams, produced using the modeling languages, are particularly useful during product line development, for example software, systems incorporating software and having mechanical and electrical elements. Such product lines may exhibit considerable diversity in features, functions, and configurations. Modeling diagrams readily reveal common elements among product line variants as well as elements that differ.
General-purpose modeling languages have limitations that have been remedied by the development of domain-specific languages (DSL). DSL languages often borrow their vocabulary from the problem domain of the company producing the system. Such customization is intended to permit developers to concentrate on solving product development problems, rather than dealing with language implementation details and drawbacks. Nevertheless, in practice most product models today do not represent product line variability options, but rather a single product.
One approach to dealing with product line diversity is proposed in the document Koala, a Component Model for Consumer Electronics Product Software, R. van Ommering, published by Philips Research, Eindhoven, The Netherlands. A structure being modeled is defined in an architectural language, in which components are independent of configuration. A mechanism is suggested to instantiate components and bind them into configurations, using a late binding approach.
The document Cardinality-Based Feature Modeling and Constraints: A Progress Report, K. Czarnecki et al. OOPSLA-2005, proposes dealing with variability using cardinality-based feature modeling, and constraint satisfaction facilities, which are implemented using general-purpose modeling languages. In the modeling process, features with a cardinality having an upper bound larger than one can be cloned during configuration.